package cn.sheep.dolphin.utils

import org.apache.commons.lang.StringUtils
import org.apache.spark.sql.Row

import scala.collection.mutable.ListBuffer

/** 处理用户画像的相关的逻辑
  * author: old sheep
  * QQ: 64341393 
  * Created 2018/12/2
  */
object TagsUtils {

	/**
	  * 返回用户的第一个不为空的id
	  * @param row
	  * @return
	  */
	def getOneUserId(row: Row) = {
		row match {
			case v if StringUtils.isNotEmpty(v.getAs[String]("imei")) 			=> "IM#"+v.getAs[String]("imei")
			case v if StringUtils.isNotEmpty(v.getAs[String]("mac")) 			=> "MC#"+v.getAs[String]("mac")
			case v if StringUtils.isNotEmpty(v.getAs[String]("idfa")) 			=> "ID#"+v.getAs[String]("idfa")
			case v if StringUtils.isNotEmpty(v.getAs[String]("androidid")) 		=> "AI#"+v.getAs[String]("androidid")
			case v if StringUtils.isNotEmpty(v.getAs[String]("openudid")) 		=> "OI#"+v.getAs[String]("openudid")
			case v if StringUtils.isNotEmpty(v.getAs[String]("imeimd5")) 		=> "IMM#"+v.getAs[String]("imeimd5")
			case v if StringUtils.isNotEmpty(v.getAs[String]("macmd5")) 			=> "MCM#"+v.getAs[String]("macmd5")
			case v if StringUtils.isNotEmpty(v.getAs[String]("idfamd5")) 		=> "IDM#"+v.getAs[String]("idfamd5")
			case v if StringUtils.isNotEmpty(v.getAs[String]("androididmd5")) 	=> "AIM#"+v.getAs[String]("androididmd5")
			case v if StringUtils.isNotEmpty(v.getAs[String]("openudidmd5")) 	=> "OIM#"+v.getAs[String]("openudidmd5")
			case v if StringUtils.isNotEmpty(v.getAs[String]("imeisha1")) 		=> "IMS#"+v.getAs[String]("imeisha1")
			case v if StringUtils.isNotEmpty(v.getAs[String]("macsha1")) 		=> "MCS#"+v.getAs[String]("macsha1")
			case v if StringUtils.isNotEmpty(v.getAs[String]("idfasha1")) 		=> "IDS#"+v.getAs[String]("idfasha1")
			case v if StringUtils.isNotEmpty(v.getAs[String]("androididsha1")) 	=> "AIS#"+v.getAs[String]("androididsha1")
			case v if StringUtils.isNotEmpty(v.getAs[String]("openudidsha1")) 	=> "OIS#"+v.getAs[String]("openudidsha1")

		}
	}

	/**
	  * 获取用户所有不为空的id
	  * @param v
	  * @return
	  */
	def getAllUserId(v: Row) = {
		val list = new ListBuffer[String]()
		if(StringUtils.isNotEmpty(v.getAs[String]("imei")) 			) 	list+="IM#"+v.getAs[String]("imei")
		if(StringUtils.isNotEmpty(v.getAs[String]("mac")) 			) 	list+="MC#"+v.getAs[String]("mac")
		if(StringUtils.isNotEmpty(v.getAs[String]("idfa")) 			) 	list+="ID#"+v.getAs[String]("idfa")
		if(StringUtils.isNotEmpty(v.getAs[String]("androidid")) 		)	list+="AI#"+v.getAs[String]("androidid")
		if(StringUtils.isNotEmpty(v.getAs[String]("openudid")) 		) 	list+="OI#"+v.getAs[String]("openudid")
		if(StringUtils.isNotEmpty(v.getAs[String]("imeimd5")) 		) 	list+="IMM#"+v.getAs[String]("imeimd5")
		if(StringUtils.isNotEmpty(v.getAs[String]("macmd5")) 		) 	list+="MCM#"+v.getAs[String]("macmd5")
		if(StringUtils.isNotEmpty(v.getAs[String]("idfamd5")) 		) 	list+="IDM#"+v.getAs[String]("idfamd5")
		if(StringUtils.isNotEmpty(v.getAs[String]("androididmd5")) 	) 	list+="AIM#"+v.getAs[String]("androididmd5")
		if(StringUtils.isNotEmpty(v.getAs[String]("openudidmd5")) 	) 	list+="OIM#"+v.getAs[String]("openudidmd5")
		if(StringUtils.isNotEmpty(v.getAs[String]("imeisha1")) 		) 	list+="IMS#"+v.getAs[String]("imeisha1")
		if(StringUtils.isNotEmpty(v.getAs[String]("macsha1")) 		) 	list+="MCS#"+v.getAs[String]("macsha1")
		if(StringUtils.isNotEmpty(v.getAs[String]("idfasha1")) 		) 	list+="IDS#"+v.getAs[String]("idfasha1")
		if(StringUtils.isNotEmpty(v.getAs[String]("androididsha1")) ) 	list+="AIS#"+v.getAs[String]("androididsha1")
		if(StringUtils.isNotEmpty(v.getAs[String]("openudidsha1")) 	) 	list+="OIS#"+v.getAs[String]("openudidsha1")
		list
	}


}
